package com.doit.day01;


import java.sql.*;
import java.util.HashMap;
import java.util.HashSet;

/**
 * 1.去mysql数据中查询数据   ==》     select password from user where user_name = 'abc';
 * 2.创建一个缓存系统，用来缓存之前查询到的mysql数据中的数据   ===》 new HashMap      user_name 作为key   password 作为value
 * 3.要实现一个功能，在查询mysql数据库之前，先查询一下缓存系统   先去hashmap里面查一下有没有这个数据
 * redis 主要就是用来做缓存系统的，当然他不光可以用来做缓存系统
 */

public class _01_缓存 {

    //2.创建一个缓存系统
   static HashMap<String, String> map = new HashMap<>();


    public static void main(String[] args) throws Exception {
        Connection conn = DriverManager.getConnection("jdbc://mysql:localhost:3306/test", "root", "123456");
        String password = getData("abc", conn);
    }


    //1.去mysql数据中查询数据
    public static String getData(String user_name, Connection conn) throws Exception {
        //上来就先查看一下user_name 是否存在于缓存系统中
        String value = map.get(user_name);
        //代表缓存系统中没有这个数据
        if (value == null) {
            PreparedStatement pps = conn.prepareStatement("select password from user where user_name = ?");
            pps.setString(1,user_name);
            ResultSet resultSet = pps.executeQuery();
            while (resultSet.next()){
                String password = resultSet.getString(1);
                return password;
            }
        }else {
            return value;
        }
        return null;
    }
}
